Device Shadows
A device shadow is AWS IoT Core's persistent record of a device's last known state. Shadows exist even when the device is offline: software clients write desired state to a shadow, and the device reads and acts on it the next time it connects. The device writes its reported state back to the shadow, and software clients read it to get the last known device state without requiring a live connection.
CPP uses named shadows exclusively.
The shadow acts as a message store between the device and the cloud: apps write what they want the device to do, the device reads what it needs to do and reports back what it did. Neither side needs the other to be online at the same time.
The Four Named Shadows
When a device is provisioned, the platform creates four named shadows automatically. They exist before the device ever connects.
| Shadow | Purpose |
|---|---|
identity | Device identity and metadata (product type, firmware version, etc.) |
status | Current operational status of the device |
config | Configuration parameters the device reads and applies |
location | Device location data |
Full schemas for each shadow and their default values have not been fully defined yet. For now, a proposed shape for each shadow can be seen on the Shadows REST API.
Where to go next
Firmware engineers — implementing shadow read/write over MQTT on the device: see Firmware Guide.
Software engineers — reading or writing shadow state from apps or backend services: use the REST API. The shadow endpoints are documented there alongside request/response shapes and authentication.